package main

func main() {

}

/*
*
给定一个含有 n 个正整数的数组和一个正整数 target 。

找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl+1, ..., numsr-1, numsr] ，
并返回其长度。如果不存在符合条件的子数组，返回 0 。
*/
func minSubArrayLen(target int, nums []int) int {
	result := 99999999
	sum := 0
	for r, l := 0, 0; r < len(nums); r++ {
		sum += nums[r]
		for sum-nums[l] >= target {
			sum -= nums[l]
			l++
		}
		if sum >= target {
			result = min(result, r-l+1)
		}
	}
	if result == 99999999 {
		return 0
	}
	return result
}

func min(a, b int) int {
	if a < b {
		return a
	}
	return b
}
